@DATABASE "AlertPatch 3.0" @NODE MAIN "AlertPatch 3.0 (9.3.94)" AlertPatch v3 Copyright (C)1992,93,94 David Swasbrook. ============= @{" Disclaimer " LINK Disclaimer } Legal information @{" Shareware " LINK Conditions } Shareware information @{" Introduction " LINK Introduction } Introduction to AlertPatch @{" How to Install " LINK Installation } How to install AlertPatch @{" Usage " LINK Usage } How to use AlertPatch @{" Configuration " LINK Configure } Adjusting the settings @{" Update Information " LINK Updates } How to get the latest AlertPatch version @{" Patch Information " LINK PatchInfo } How to detect the patch @{" Special Thanks " LINK Thanks } Thankyou for your ideas/support @{" History " LINK History } A very brief history of AlertPatch @ENDNODE ------------------------------------------------------------------------------- @NODE Disclaimer "Its not my fault..." Disclaimer ********** AlertPatch is supposed to be a replacement function for the exec.library/Alert function. Operations of this type are always risky, as when an alert occurs the system is in an inconsistent and/or defective state. I hereby reject any liability or responsibility for these or any other consequences from the use of AlertPatch whatsoever. This includes, but is not limited to, damage to your equipment, to your data, personal injuries, financial loss or any other kinds of side effects. Although AlertPatch has been tested thoroughly on several different machines, I cannot rule out the possibility that AlertPatch o is somehow incompatible to your equipment o has bugs that show up on your equipment o does not do what it is supposed to do on your equipment It is your responsiblity to take any precautions necessary to protect yourself from these or any other effects. I explicitly reject any liability or responsibility from the consequences of you using AlertPatch. Swaz. @ENDNODE ------------------------------------------------------------------------------- @NODE Conditions "Shareware distribution info..." Shareware ********* AlertPatch is shareware. The program may be freely distributed and copied, as long as the following conditions are fulfilled: o The sales price must not be higher than the cost of an (empty) disk plus a nominal copying fee plus costs for shipping. The total price must not be higher than 5 US$. o All parts of the program and the documentation must be complete. The distribution of single parts or incomplete subsets of the original distribution is NOT ALLOWED. o AlertPatch or parts of it may not be sold in combination with or as part of commercial software. o Program and documentation may not be changed in any way. o Permission has been given for distribution through Aminet and Fred Fish. AlertPatch is shareware, this means I request those users, who use AlertPatch, to send me the shareware fee of 10 US$ (or any other contributions gratefully accepted) to the following address: Postal: David Swasbrook, 43 Pickwick Parade, Howick, Auckland, New Zealand. Internet: swaz@iconz.co.nz (private) or msd@iconz.co.nz Please include the following information in your registration: o your name, address (including any electronic mail addresses you might have) and telephone number o your Amiga model(s) o Kickstart and Workbench versions o the AlertPatch version number (currently 3.0) I assure you that the information you send me will be treated confidentially. I will try and inform everybody, who has registered with me as described above, when a new version of AlertPatch becomes available. If you have sent a shareware donation, if possible, you will recieve an update through mail (preferably email). Thank you very much in advance ! @ENDNODE ------------------------------------------------------------------------------- @NODE Introduction "A brief rundown..." Introduction ************ AlertPatch is simply a patch into the exec.library/Alert() function to display more meaningful information to the user. There is a variety of information provided at the time the alert is displayed: Alert Type - Software Failure or DeadEnd. Task - Task address and name. Error - The alert error being displayed. Caused By - If the calling routines are known then this will tell you where the problem lies (eg. "graphics.library") Cause - Single line description of what the alert is all about. Task Owner - if @{" MultiUser FileSystem " LINK MUFS } is installed then the userID and userName are also displayed. Data Registers - A dump of the CPU data registers d0...d7 Address Registers - A dump of the CPU address registers a0...a7 Text Representation - This is the text representation of the data and address registers. Non-printable ascii characters are shown as "." To generate the above information, approximately 600 bytes of stack are required. This "large" amount of stack usage to build the alert text will cause problems if we are low on stack. If this is a problem then increase the stacksize of the task causing the alert, of course getting an alert "usually" means there is something wrong anyhow so this may not always work. @ENDNODE ------------------------------------------------------------------------------- @NODE Installation "How to install and run AlertPatch..." Installation ************ Double click on the install icon Localization Information: You may select which languages are to be installed for AlertPatch during the installation. If there is no translation provided for your preferred language then you may make your own catalog from the @{" alertpatch.cd " LINK alertpatch.cd/MAIN } file. You will need the program "CatComp" to build the catalog file alertpatch.catalog. Please refer to CatComp documentation for further information. CatComp is Copyright Commodore Amiga Inc. @ENDNODE ------------------------------------------------------------------------------- @NODE Usage "How to use AlertPatch" How To Use AlertPatch ********************** o To install AlertPatch simply double click on the icon. o Double clicking again on the AlertPatch icon will bring up a window listing all Alerts with descriptions known by AlertPatch. You may add to this list yourself (see @{" Alert list " LINK AFF } ). @{" Details on Main Window " LINK AlertListWindow }. o To remove AlertPatch click on the Quit button Additional configuration options and features: @{" CLI/ToolTypes " LINK Cli } @{" Sounds " LINK MSDSounds } @{" ARexx " LINK ARexx } @ENDNODE ------------------------------------------------------------------------------- @NODE ARexx "ARexx command summary..." ARexx ***** AlertPatch adds an ARexx port named "ALERTPATCH" to the system. Supported commands are: QUIT - Quit from AlertPatch SHOW - Show the AlertPatch interface HIDE - Hide the AlertPatch interface ALERT - cause the specified alert to occur. @ENDNODE ------------------------------------------------------------------------------- @NODE Cli "Command Line Usage and Workbench ToolTypes" ToolTypes & CLI Arguments ************************* Supported arguments/tooltypes are: Standard Commodity arguments: CX_POPKEY CX_POPUP CX_PRIORITY Specific to AlertPatch: FONT - the name and size of the font to use for gadgets. If not specified then the default system front is used. eg. FONT="topaz 8" Settings specific to AlertPatch may be chosen by selecting from the main AlertPatch window the @{" Settings " LINK Configure } button. @ENDNODE ------------------------------------------------------------------------------- @NODE AlertListWindow "Alert List Window and Configuring Alert Mode" Alert List Window and Configuration *********************************** When AlertPatch is run from Workbench and it is currently installed, or the command line argument of WINDOW is specified, a window listing all the alerts is opened. THE LIST - double clicking on an entry in the list will generate the Alert. @{"***BE VERY CAREFUL***" LINK Why} If the alert is a DEADEND alert then you may reset your computer. If you have chosen the Window Alert then it is advisable to select CONTINUE unless you *WANT* to suspend "AlertPatch" or "Reset" your machine. - You may also use the arrow keys to move up and down the list and press return to select an entry. The Buttons *********** Quit - remove the AlertPatch Alert function and restore the original system Alert() function. @{" About " LINK About } - some information about AlertPatch @{" Settings " LINK Configure} - set/save the configuration Ok - close the AlertPatch window @ENDNODE ------------------------------------------------------------------------------- @NODE About "Just some shareware information...." The About Window **************** This window tells you information about the current version of AlertPatch and some information on @{" Shareware & Registration " LINK Conditions } @ENDNODE ------------------------------------------------------------------------------- @NODE Configure "How to configure AlertPatch..." Configuration Information ************************* This is where you select what sort of Alert you would like plus some extended features available for that particular alert type. Settings: Render Method - the type of alert you wish to have displayed. @{" NORMAL " LINK Normal } Use System Alerts @{" CUSTOM " LINK Custom } Use Custom Alerts @{" WINDOW " LINK Window } Use Window Alerts Call exec Vector - will also call the original exec.library/Alert() function @{" Sounds " LINK MSDSounds } - turn sounds on/off. (Sounds are only available for the custom and window alert modes. Timeout - number of vertical blanks before the alert should timeout. This is not available for Standard alerts, or Custom alerts on pre kickstart V39. Logfile enabled - if set AlertPatch will write a log of all the alerts generated. See also @{" Logfile " LINK Logfile } @{" Configure logfile " LINK Logfile } - set the logfile name and other logfile options. Alert File - additional alert descriptions may be provided in a text file. See @{" Alert File Format " LINK AFF } Custom Alert Mouse Buttons: Recovery (right) - what action to take when the RIGHT mouse button is pressed. It is to be noted that a left mouse button on a Recovery alert means continue. Deadend (any) - what action to take for a deadend alert. This is for any (either left or right) mouse button. Window Alert Timeout Actions: Recovery - the action to take when timeout occurs on a recovery alert. Deadend - the action to take when timeout occurs on a deadend alert. @ENDNODE @NODE AFF "Alert File Format" Alert File Format ***************** The alert data file is a text file named "AlertPatchData" residing in the current directory when AlertPatch is run, or a user specified file. One alertnumber and description may be specified per line in the text file. You may use "#" to indicate at the start of a line to indicate that it is a comment. ---- Example File "AlertPatchData" ---- #Example AlertData file 12345678 Numerical consistency warning 80102FF0 This is my own alert ---- End Of File ---- @ENDNODE @NODE Logfile "Keep track of alerts..." Logfile ******* If the logfile is enabled then when an alert occurs, AlertPatch will attempt to write to the specified file information about the alert. Is is strongly suggested that the file be located on a RamDisk or other such device, as writing to disk during an alert could cause possible errors in the filesystem, in order to reduce the chance of filesystem corruption it is possible to not write the DEADEND (the most serious) alerts to the file. Alternatively you may wish to output the logfile to SER: (the serial.device) or PAR: (the parallel.device). This choice is up to you. LogFile - this sets the name for the logfile to be written. Selecting the BUTTON or pressing the HELP key in the string gadget will use a filerequestor to get the logfilename. Do not log DEADEND alerts - if set then AlertPatch will not log any DEADEND alerts to the logfile. This may reduce the chance of corrupting the logfile. @ENDNODE ------------------------------------------------------------------------------- @NODE MSDSounds "Some audio to make alerts even more enjoyable..." MSD/UPD Sounds ************** AlertPatch will play sounds through a Sound Daemon such as MSD or UPD. These add an Arexx port to the system called "PLAY" and the following sound id's are sent to the port: AlertPatch/Recoverable AlertPatch/DeadEnd AlertPatch/Continue AlertPatch/Suspend o Sounds are only available if the "MSD/UPD Sounds" is checked in the configuration window and the alert mode is either custom or window. Acknowledgements **************** UPD is Copyright 1991 Jonas Petersson & Absolute Software (aka Sirius Soft) MSD is Copyright 1992,93,94 David Swasbrook. (Not released yet) @ENDNODE ------------------------------------------------------------------------------- @NODE Why "Why should you be careful?" Why you should be Very Careful ****************************** When you select an entry in the listview, AlertPatch will generate an example alert by calling exec.library/Alert(). This functions identically to when any other program calls exec.library/Alert(). And so if you select SUSPEND, AlertPatch will suspend itself, by selecting REBOOT the system will reboot. If you do select SUSPEND or REBOOT and the alert has been generated by AlertPatch then a requestor will be displayed to make sure you are aware of what you intend doing. @ENDNODE ------------------------------------------------------------------------------- @NODE Normal "Information on the NORMAL mode of AlertPatch" Normal AlertPatch ****************** All alerts generated will be passed through to the original exec library Alert() function before calling the specified patch routine. @ENDNODE ------------------------------------------------------------------------------- @NODE Custom "Information on the CUSTOM mode of AlertPatch" Custom AlertPatch ****************** The custom option will produce a "flashy" alert using the normal exec.library function Alert() but will contain all the information as below in a slightly larger than normal flashy box. ___________________________________________________________________________ | | | Task : 0x079527D8 "AlertPatch" | | Error : 0x81000005 (DEADEND) | | By : Exec library | | Cause : Corrupt memory list detected in FreeMem() | | | | D0:00000001 D1:01E4DB57 D2:00001000 D3:079608CC .... ...W .... .... | | D4:00000001 D5:00000001 D6:01E55BC9 D7:81000005 .... .... ..[. .... | | | | A0:079608CC A1:0795F7C0 A2:07813A84 A3:07936D2A .... .... ..:. ..mo | | A4:079607B8 A5:00F92324 A6:07800804 A7:07904AA2 .... ..#$ .... ..J. | |___________________________________________________________________________| The alert may be satisfied by timeout or by pressing either the LEFT or RIGHT mouse button with the following effects: For DEADEND Alerts ****************** EITHER BUTTON: Use the configured settings for custom mode, by default this is reset. For RECOVERABLE Alerts ********************** LEFT BUTTON: This is always Continue. RIGHT BUTTON: Use the configured settings for custom mode, by default this is reset. For TIMEOUT *********** If the alert times out then the result is the same as would happen for DEADEND and RECOVERABLE alerts (above) if the LEFT BUTTON was pressed. @ENDNODE ------------------------------------------------------------------------------- @NODE Window "Information on the WINDOW mode of AlertPatch" Window AlertPatch ****************** Below is an example of what the window generated by AlertPatch looks like (hey its the best i could manage with ascii :) ___________________________________________________________________________ | | | | | O | Software Failure | | |___|___________________________________________________________________|___| | | | Task : 0x079527D8 "AlertPatch" | | Error : 0x81000005 (DEADEND) | | By : Exec library | | Cause : Corrupt memory list detected in FreeMem() | | User : root (David Swasbrook) | | | | D0:00000001 D1:01E4DB57 D2:00001000 D3:079608CC .... ...W .... .... | | D4:00000001 D5:00000001 D6:01E55BC9 D7:81000005 .... .... ..[. .... | | | | A0:079608CC A1:0795F7C0 A2:07813A84 A3:07936D2A .... .... ..:. ..mo | | A4:079607B8 A5:00F92324 A6:07800804 A7:07904AA2 .... ..#$ .... ..J. | | | |___________________________________________________________________________| | | | @{" Continue " LINK Button_Continue} @{" Suspend " LINK Button_Suspend} @{" Reset " LINK Button_Reset} | |___________________________________________________________________________| NOTES: o The "User :" field is only available if you have installed @{" MultiUser filesystem " LINK MUFS }. o If the system is too badly damaged then there is a high chance that the window will not be displayed and the computer may lock up. Use the @{" custom mode " LINK Custom} if you find this annoying. @ENDNODE ------------------------------------------------------------------------------- @NODE Button_Continue "The CONTINUE button..." Continue Button *************** The continue button allows task that caused the alert to continue doing whatever it was doing. If you do this on a DEADEND alert then you may find that the task will cause some serious problems and you will end up rebooting. @ENDNODE ------------------------------------------------------------------------------- @NODE Button_Suspend "The SUSPEND button..." Suspend Button ************** The suspend button simply puts the offending task to sleep. This is achieved by calling the exec.library function Wait() with a NULL for the signal mask. moveq #0,d0 SYSCALL Wait This effectivly stops the task from causing any more harm than it has done. @ENDNODE ------------------------------------------------------------------------------- @NODE Button_Reset "The RESET button..." Reset Button ************ The reset button will reboot using the exec.library function ColdReboot(). @ENDNODE ------------------------------------------------------------------------------- @NODE Updates "All about updates..." Update Information ****************** I will try and further improve AlertPatch if I have time for it. Registered users will at least get a notification when new versions of AlertPatch get available that contain significant changes or enhancements. New versions of AlertPatch will also be available on the Internet per "anonymous FTP" (look on Aminet). In order to be able to improve and/or correct AlertPatch, I would like to ask every user to do the following: o send me the registration fee of US$ 10 o send me bug reports, if you find any bugs o give me hints how to improve AlertPatch See @{" Shareware " LINK Conditions } section for details on my mail address. Thank you very much in advance ! @ENDNODE ------------------------------------------------------------------------------- @NODE PatchInfo "How to find AlertPatch..." How to detect AlertPatch -- A programmers perspective ****************************************************** AlertPatch may be found by finding the Semaphore named "AlertPatch" which is the following structure: STRUCTURE TheAlertPatch,ss_SIZEOF UWORD ap_Version UWORD ap_Revision APTR ap_VersionString APTR ap_OriginalVector APTR ap_NewVector ;--- The following were added for V2.20 APTR ap_DiskLogName LABEL ap_SIZEOF @ENDNODE ------------------------------------------------------------------------------- @NODE MUFS "MultiUserFileSystem" MultiUserFileSystem ******************* Copyright Geert Uytterhoeven, All Rights Reserved. You've got an Amiga with Kickstart 2.04 or higher and several people are regularly fooling around with it ... Last week your sister deleted your 20MB JPEG collection by mistake and you don't want this to happen again ... Well, here's the answer: MultiUser! MultiUser allows you to create a *IX-like environment where several users live together in harmony, unable to delete each others files, unable to read those private love-letters of other users ... And this even if several users are working on the machine at the same time (on a terminal hooked up to the serial port) ... You are the sole user of your computer? Well, make sure it stays that way by installing MultiUser! People without a valid login ID and password won't be able to access files you have made private with MultiUser. If you make all files private (not readable for others), the only useful thing they could do, is boot from a floppy ... And ... you do not have to reformat your hard drive! @ENDNODE ------------------------------------------------------------------------------- @NODE Thanks "List of contributors" Contributors ************ Thank you to the following translators: fran ais - Jean-Michel Bezeau Thank you to the following who have sent in suggestions and requests: Carlos Amezaga Thanks also to the following who reported bugs: Denis Bucher Beta testing performed by: Daryl Jay Also thanks to Osma Ahvenlampi for designing the MagicWB icon. o I'm sorry if you have contributed and you name is not in the above lists. I try to reply to all email so if you have sent me some mail and not received a reply then it is more than likely that my mailer sent it to nil: accidentally. @ENDNODE ------------------------------------------------------------------------------- @NODE History "Whats been happening..." History Information ******************* `V3.0' o Commodities support o Locale support o Arexx support o User definable alert numbers and descriptions o Preferences interface changed o The safe mode is no longer an option and detectes if an alert is a test alert much better o MagicWB style icon added `V2.31' o Fixed email address `V2.30' o Multiuser FileSystem support, displays the name of the owner of the offending task (only if you are using MultiUser Filesystem) o Locale support (Interface only) `V2.20' o Now has safe option, this reduces the chance of accidentally suspending AlertPatch or reseting the machine when you are testing alerts. o Alerts may now be logged to a disk file `V2.19' o Added timeout for Custom and Window Alerts o Can call the old Alert function before a Custom or Window Alert. `V2.18' o Added in configurable action for pressing the right mouse button for Recoverable alerts, and either mouse button for DeadEnd alerts. o The AlertPatch main window is disabled while "testing" alerts. o Changed disclaimer and shareware documentation. o Improved documentation about testing alerts. o Added sounds to the window alert. `V2.17' o Fixed to work under V37 `V2.16' o Initial release on Aminet. o (Incorrectly documented as working under V37) @ENDNODE